import {
  SKUCreateDto,
  SKUFindDto,
  SKUListDto,
  SKUQueryDto,
  SKUUpdateDto,
} from '@/dtos';
import { SKUService } from '@/services/sku.service';
import { ok } from '@/utils';
import { Body, Controller, Patch, Post } from '@nestjs/common';
import { BaseController } from './base.controller';

@Controller('sku')
export class SKUController extends BaseController {
  constructor(private readonly skuService: SKUService) {
    super();
  }

  @Post('list')
  async list(@Body() dto: SKUListDto) {
    return ok(await this.skuService.list(dto));
  }

  @Post('admin/query')
  async query(@Body() dto: SKUQueryDto) {
    return ok(await this.skuService.query(dto));
  }

  @Post('admin/find')
  async find(@Body() dto: SKUFindDto) {
    return ok(await this.skuService.findOne(dto.where, dto.select));
  }

  @Post('admin/create')
  async create(@Body() dto: SKUCreateDto) {
    return ok(await this.skuService.create(dto.data));
  }

  @Patch('admin/update')
  async update(@Body() dto: SKUUpdateDto) {
    return ok(await this.skuService.update(dto));
  }
}
